/**
 *
 */
package org.osflash.signals;

interface IPrioritySignal implements ISignal {

	/**
	 * Subscribes a listener for the signal.
	 * After you successfully register an event listener,
	 * you cannot change its priority through additional calls to add().
	 * To change a listener's priority, you must first call remove().
	 * Then you can register the listener again with the new priority level.
	 * @param	listener A function with an argument
	 * that matches the type of event dispatched by the signal.
	 * If eventClass is not specified, the listener and dispatch() can be called without an argument.
	 * @return a ISlot, which contains the Function passed as the parameter
	 * @see ISlot
	 */
	function addWithPriority(listener : Dynamic, priority : Int = 0) : ISlot;
	function addOnceWithPriority(listener : Dynamic, priority : Int = 0) : ISlot;
}

